home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 5_2007-2008.ISO / data / Zips / a_14_Handy2056213262007.psc / Handy Modules / modEnum.bas < prev    next >
BASIC Source File  |  2007-03-24  |  2KB  |  49 lines

  1. Attribute VB_Name = "modEnum"
  2. Private Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
  3. Private Declare Function Process32First Lib "kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
  4. Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
  5.  
  6. Private Const TH32CS_SNAPHEAPLIST = &H1
  7. Private Const TH32CS_SNAPPROCESS = &H2
  8. Private Const TH32CS_SNAPTHREAD = &H4
  9. Private Const TH32CS_SNAPMODULE = &H8
  10. Private Const TH32CS_SNAPALL = (TH32CS_SNAPHEAPLIST Or TH32CS_SNAPPROCESS Or TH32CS_SNAPTHREAD Or TH32CS_SNAPMODULE)
  11.  
  12. Private Type PROCESSENTRY32
  13.     dwSize As Long
  14.     cntUsage As Long
  15.     th32ProcessID As Long
  16.     th32DefaultHeapID As Long
  17.     th32ModuleID As Long
  18.     cntThreads As Long
  19.     th32ParentProcessID As Long
  20.     pcPriClassBase As Long
  21.     dwFlags As Long
  22.     szExeFile As String * 260
  23. End Type
  24.  
  25. Public Function enumProcesses(Seperator As String)
  26.     Dim snap As Long
  27.     Dim proc As PROCESSENTRY32
  28.     Dim p As Long
  29.     Dim str1 As String
  30.     snap = CreateToolhelp32Snapshot(TH32CS_SNAPALL, 0&)
  31.     proc.dwSize = Len(proc)
  32.     p = Process32First(snap, proc)
  33.     p = Process32Next(snap, proc)
  34.     Do While p
  35.         str1 = str1 & xto(proc.szExeFile, Chr$(0)) & Seperator
  36.         p = Process32Next(snap, proc)
  37.     Loop
  38.     enumProcesses = Mid$(str1, 1, Len(str1) - 1)
  39. End Function
  40.  
  41. Private Function xto(txt As String, B As String) As String
  42.     For a = 1 To Len(txt)
  43.         If Mid$(txt, a, Len(B)) = B Then Exit For
  44.         c = c & Mid$(txt, a, 1)
  45.     Next
  46.     xto = c
  47. End Function
  48.  
  49.